// 用户模块
import { getUserInfo } from '@/api/user'
import { Toast } from 'vant'
import {
  setStorageToken,
  getStorageToken,
  removeStorageToken
} from '@/utils/storage'
export default {
  // 开启命名空间
  namespaced: true,
  state: {
    // token: JSON.parse(localStorage.getItem('hm-news-token')) || {}
    token: getStorageToken(),
    // 用户的个人信息存放到vuex中，方便其他组件使用用户信息
    userInfo: {}
  },
  getters: {},
  mutations: {
    setToken(state, payload) {
      state.token = payload
      // 本地存储+响应式
      // localStorage.setItem('hm-news-token', JSON.stringify(payload))
      setStorageToken(payload)
    },
    // 提供修改数据的方法
    setUserInfo(state, payload) {
      state.userInfo = payload
    },
    removeToken(state) {
      state.token = {}
      // 将本地存储的token删除
      removeStorageToken()
    }
  },
  actions: {
    async Actions_getUserInfo(context) {
      try {
        const res = await getUserInfo()
        // console.log(res)
        context.commit('setUserInfo', res.data)
      } catch {
        Toast('获取用户信息失败')
      }
    }
  }
}
